The twenty-one new operators for signal processing are listed in Table 2.
Most of them need one or more arguments in order to be fully specified.
One of the arguments--- the last, or, for the transforms, the
second-to-last--- says what symbols are to be treated as variables in
the function to be acted on.
Thus, 30 has no effect on
the expression 31, but 32 <#127#>represents<#127#> 33.
An impulse train, for example, in continuous time would be written
either as <#128#>Periodic[T, t][Delta[t]]<#128#> or as
<#129#>Summation[n, -Infinity, Infinity, 1][Delta[t + n T]]<#129#> where
<#130#>n<#130#> is an integer index variable, <#131#>T<#131#> is the sampling period,
and <#132#>t<#132#> is the continuous time variable.
For the transforms, the last two
arguments indicate the variables before or after transformation.
Other arguments are explained in the table.
<#2998#>Table<#2998#>:
<#2999#>(Parameterized) Operators defined in <#199#>SignalProcessing`Support`<#199#>.
For the transforms, the last two arguments indicate the variable(s)
in the function to be acted on and in the result of the
transformation.
For all other operators except <#200#>Summation<#200#>, the
last argument indicates the variable(s) in the function to be acted on.<#2999#>
CFIR[t, {h0, h1, ...}] |
``all-zero'' analog filter |
CIIR[t, {a0, a1, ...}] |
all-pole analog filter |
CircularShift[n0, N, n] |
shifts a sequence by (n0 + n) mod N
in n |
CConvolve[t] |
continuous convolution in t |
Convolve[n] |
discrete convolution in n |
DFT[L, n, k] |
the L-sample discrete Fourier transform |
;SPMnbsp; |
of a function in n to a function in k |
DTFT[n, w] |
the discrete-time Fourier transform of a sequence |
;SPMnbsp; |
in n to a continuous periodic function in w |
Difference[i, n] |
the ith backward difference in n |
Downsample[m, n] |
keep first sample in every block of m input samples; |
;SPMnbsp; |
sampling rate decreases by a factor of m |
FIR[n, {h0, h1, ...}] |
all-zero digital filter with finite impulse response h0, h1, .... |
FT[t, w] |
continuous Fourier transform of a function of t into a function of w |
IIR[n, {a0, a1, ...}] |
all-pole digital filter with infinite impulse response |
Interleave[n] |
interleaves (combines) samples from each input function of n into one |
InvDFT[L, k, n] |
inverse discrete Fourier transform (see DFT) |
InvDTFT[w, n] |
inverse discrete-time Fourier transform (see DTFT) |
InvFT[w, t] |
inverse continuous Fourier transform (see FT) |
InvL[s, t] |
inverse Laplace transform (see L) |
InvZ[z, n] |
inverse z-transform (see Z) |
L[t, s] |
Laplace transform of a function of t |
Periodic[p, v] |
argument is made periodic with period p w/r to variable v |
Rev[v] |
reverse the function of variable v (flip the v axis) |
Shift[v0, v] |
shift function of v by v0 points |
Summation[i, ib, ie, inc] |
summation operator, i =
ib to ie step inc |
Upsample[l, n] |
insert l - 1 zeroes after each input sample; |
;SPMnbsp; |
sampling rate increases by a factor of l |
Z[n, z] |
z-transform of a function of n |
|
For / operators, a variable is a symbol, like 34.
Arguments other than variables can be numbers, symbols or
expressions.
By using a list of symbols in place of a variable,
like 35 instead of 36, we make the operator
multidimensional, the length of the list indicating the
dimensionality.
For multidimensional operators, upsampling and downsampling factors
become square matrices, and other parameters become lists of
expressions, one expression per dimension.
For example, the downsample operator requires a downsampling factor
<#202#>m<#202#> and a symbolic variable <#203#>n<#203#>.
In one-dimensional downsampling, <#204#>m<#204#> is an integer and <#205#>n<#205#>
is a symbolic index.
In the multidimensional case, <#206#>m<#206#> is a matrix and <#207#>n<#207#>
is a list of symbolic indices.
In either case, the form of the operator is <#208#>Downsample[m, n]<#208#>,
and its syntax is <#209#>Downsample[m, n][f]<#209#>, where f is a discrete
function in <#210#>n<#210#>.
It must be emphasized that when one of the operators of Table 2 is applied to
a function, no evaluation takes place---~~the idea is to
store the resulting function symbolically, until it becomes convenient
to compute it explicitly.
This is done by applying 37 to the expression,
much as a numerical evaluation in <#1156#>Mathematica<#1156#> is triggered by the action
of 38.
Thus 39 represents the z-transform of anu[n],
but the transformation is not carried out; to obtain an explicit transform
one must apply 40 to the expression.
(However, certain obvious simplifications are carried out: for example,
41
reduces to 42.)
Similarly, the functions of in Table 1 are not reduced to <#1157#>Mathematica<#1157#> built-in
objects until they appear as arguments to 43.
One may wish to reduce them, for example, in order to use <#1158#>Mathematica<#1158#>'s
built-in plotting routines to plot them.
Naturally, some functions in Table 1, like 44 and 45,
cannot be expressed in terms of / built-in objects,
so 46 leaves them alone.